//https://leetcode.cn/problems/4sum-ii/
package codeRandomThoughts.Test454四数相加II;

import java.util.HashMap;
import java.util.Map;

//二刷
public class Solution2 {
    public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        Map<Integer, Integer> map = new HashMap<>();
        //可以转换为两数之和
        //求出nums1和nums2的所有组合
        for (int i : nums1) {
            for (int j : nums2) {
                map.put(i + j, map.getOrDefault(i + j, 0) + 1);
            }
        }
        int res = 0;
        for (int i : nums3) {
            for (int j : nums4) {
                if (map.containsKey(-(i + j))) {
                    res += map.get(-(i + j));
                }
            }
        }

        return res;
    }
}
